<?php
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * File:     function.tableSort.php
 * Type:     function
 * Name:     link
 * Purpose:  zwraca link do sortowania
 * -------------------------------------------------------------
 */


function smarty_function_tableSort($params, &$smarty){


   
    if(is_array($params)) {
        if(isset($params['title'])) {
            $title = $params['title'];
        } else {
            throw new Exception( 'Sortowanie: Wymagany tytuł!');
        }

        if(isset($params['label'])) {
            $label= $params['label'];

        } else {
			$label = 'current';
        }
        

        if(isset($params['field'])) {
            $field = $params['field'];
        } else {
            throw new Exception('Sortowanie: Wymagane pole!');
        }

        if(isset($params['number'])) {
            $number= $params['number'];

        } else {
			$number = 0;
        }

		
		//-----------------------------------------------------
		$sortByArray = $smarty->get_template_vars('_sortBy');
		//Ustawianie domyślnych pól sortowania dla tabel o niższych numerkach (które nie zostały posortowane wcześniej)
		if(is_array($sortByArray)){
			for ($i = 0; $i < $number+1; $i++) {
				$sortByArray[$i] = isset($sortByArray[$i])? $sortByArray[$i] : DEFAULT_SORT_FIELD;
			}
		} else {
			$sortByArray = array();
			for ($i = 0; $i < $number+1; $i++) {
				$sortByArray[$i] = DEFAULT_SORT_FIELD;
			}
		}
		// Wybór pola po którym jest sortowanie w tabeli o bierzącym numerku.
		$whatField = $sortByArray[$number];
		$sortByArray[$number] = $field;
		$allField = implode('-', $sortByArray);

		
		//-----------------------------------------------------
		$sortDirArray = $smarty->get_template_vars('_sortDir');
		//Ustawianie domyślnych kierunków sortowania dla tabel o niższych numerkach (które nie zostały posortowane wcześniej)
		if(is_array($sortDirArray)){
			for ($i = 0; $i < $number+1; $i++) {
				$sortDirArray[$i] = isset($sortDirArray[$i])? $sortDirArray[$i] : DEFAULT_SORT_DIR;
			}
		} else {
			$sortDirArray = array();
			for ($i = 0; $i < $number+1; $i++) {
				$sortDirArray[$i] = DEFAULT_SORT_DIR;
			}
		}
		// Wybór pola po którym jest sortowanie w tabeli o bierzącym numerku.
		$whatDir = $sortDirArray[$number];
		$sortDirArray[$number] = '##DIR##';
		$allDir = implode('-', $sortDirArray);

        $return = $title . ' ';

        $url=(isset($params['action']) && !empty($params['action']))? URL_MAIN.$params['action'] : URL_MAIN;


        $return .= '<a href="';

		$return .= Router::GenerateUrl(
                        $label ,
                        array( ROUTER_SORT_LABEL => $allField,
                               ROUTER_DIR_LABEL => str_replace('##DIR##', 'asc', $allDir)),$url);

		$return .= '" class="';

		if($whatField == $field && $whatDir == "asc") {
			$return .= 'ascselected';
		} else
			$return .= 'asc';

		$return .= '" title="Sortuj"><img src="'. URL_STATIC_CONTENT .'/image/Strona/blank8x8.gif" border="0" alt=""/></a>';



        $return .= '<a href="';

		$return .= Router::GenerateUrl( $label ,array( ROUTER_SORT_LABEL => $allField, ROUTER_DIR_LABEL => str_replace('##DIR##', 'desc', $allDir)), $url);

		$return .= '" class="';

		if($whatField == $field && $whatDir == "desc") {
			$return .= 'descselected';
		} else
			$return .= 'desc';

		$return .= '" title="Sortuj"><img src="'. URL_STATIC_CONTENT .'/image/Strona/blank8x8.gif" border="0" alt=""/></a>';



	} else {
        throw new Exception('Podaj parametry!');
    }
    return $return;
}
?>